<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>NodeUtil (Closure Compiler)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="NodeUtil (Closure Compiler)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/javascript/jscomp/NodeTraversal.ScopedCallback.html" title="interface in com.google.javascript.jscomp"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../com/google/javascript/jscomp/ObjectPropertyStringPreprocess.html" title="class in com.google.javascript.jscomp"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/javascript/jscomp/NodeUtil.html" target="_top">Frames</a></li>
<li><a href="NodeUtil.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.google.javascript.jscomp</div>
<h2 title="Class NodeUtil" class="title">Class NodeUtil</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.google.javascript.jscomp.NodeUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="strong">NodeUtil</span>
extends java.lang.Object</pre>
<div class="block">NodeUtil contains generally useful AST utilities.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#getFunctionJSDocInfo(com.google.javascript.rhino.Node)">getFunctionJSDocInfo</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</code>
<div class="block">Get the JSDocInfo for a function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#getFunctionParameters(com.google.javascript.rhino.Node)">getFunctionParameters</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;fnNode)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/InputId.html" title="class in com.google.javascript.rhino">InputId</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#getInputId(com.google.javascript.rhino.Node)">getInputId</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#getNearestFunctionName(com.google.javascript.rhino.Node)">getNearestFunctionName</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</code>
<div class="block">Gets the function's name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/jstype/StaticSourceFile.html" title="interface in com.google.javascript.rhino.jstype">StaticSourceFile</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#getSourceFile(com.google.javascript.rhino.Node)">getSourceFile</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#getSourceName(com.google.javascript.rhino.Node)">getSourceName</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#isLValue(com.google.javascript.rhino.Node)">isLValue</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</code>
<div class="block">Determines whether this node is used as an L-value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/jstype/TernaryValue.html" title="enum in com.google.javascript.rhino.jstype">TernaryValue</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#isStrWhiteSpaceChar(int)">isStrWhiteSpaceChar</a></strong>(int&nbsp;c)</code>
<div class="block">Copied from Rhino's ScriptRuntime</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#isValidQualifiedName(java.lang.String)">isValidQualifiedName</a></strong>(java.lang.String&nbsp;name)</code>
<div class="block">Determines whether the given name is a valid qualified name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.util.Map&lt;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>,<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#mapMainToClone(com.google.javascript.rhino.Node, com.google.javascript.rhino.Node)">mapMainToClone</a></strong>(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;main,
              <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;clone)</code>
<div class="block">Given an AST and its copy, map the root node of each scope of main to the
 corresponding root node of clone</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#newQualifiedNameNode(com.google.javascript.jscomp.CodingConvention, java.lang.String)">newQualifiedNameNode</a></strong>(<a href="../../../../com/google/javascript/jscomp/CodingConvention.html" title="interface in com.google.javascript.jscomp">CodingConvention</a>&nbsp;convention,
                    java.lang.String&nbsp;name)</code>
<div class="block">Creates a node representing a qualified name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a></code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#newQualifiedNameNodeDeclaration(com.google.javascript.jscomp.CodingConvention, java.lang.String, com.google.javascript.rhino.Node, com.google.javascript.rhino.JSDocInfo)">newQualifiedNameNodeDeclaration</a></strong>(<a href="../../../../com/google/javascript/jscomp/CodingConvention.html" title="interface in com.google.javascript.jscomp">CodingConvention</a>&nbsp;convention,
                               java.lang.String&nbsp;name,
                               <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;value,
                               <a href="../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</code>
<div class="block">Creates a node representing a qualified name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/javascript/jscomp/NodeUtil.html#verifyScopeChanges(java.util.Map, com.google.javascript.rhino.Node, boolean, com.google.javascript.jscomp.AbstractCompiler)">verifyScopeChanges</a></strong>(java.util.Map&lt;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>,<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&gt;&nbsp;map,
                  <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;main,
                  boolean&nbsp;verifyUnchangedNodes,
                  <a href="../../../../com/google/javascript/jscomp/AbstractCompiler.html" title="class in com.google.javascript.jscomp">AbstractCompiler</a>&nbsp;compiler)</code>
<div class="block">Checks that the scope roots marked as changed have indeed changed</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="isStrWhiteSpaceChar(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStrWhiteSpaceChar</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/jstype/TernaryValue.html" title="enum in com.google.javascript.rhino.jstype">TernaryValue</a>&nbsp;isStrWhiteSpaceChar(int&nbsp;c)</pre>
<div class="block">Copied from Rhino's ScriptRuntime</div>
</li>
</ul>
<a name="getNearestFunctionName(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNearestFunctionName</h4>
<pre>public static&nbsp;java.lang.String&nbsp;getNearestFunctionName(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</pre>
<div class="block">Gets the function's name. This method recognizes the forms:
 <ul>
 <li><code>&amp;#123;'name': function() ...&amp;#125;</code></li>
 <li><code>&amp;#123;name: function() ...&amp;#125;</code></li>
 <li><code>function name() ...</code></li>
 <li><code>var name = function() ...</code></li>
 <li><code>qualified.name = function() ...</code></li>
 <li><code>var name2 = function name1() ...</code></li>
 <li><code>qualified.name2 = function name1() ...</code></li>
 </ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - a node whose type is <a href="../../../../com/google/javascript/rhino/Token.html#FUNCTION"><code>Token.FUNCTION</code></a></dd>
<dt><span class="strong">Returns:</span></dt><dd>the function's name, or <code>null</code> if it has no name</dd></dl>
</li>
</ul>
<a name="isLValue(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLValue</h4>
<pre>public static&nbsp;boolean&nbsp;isLValue(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</pre>
<div class="block">Determines whether this node is used as an L-value. Notice that sometimes
 names are used as both L-values and R-values.

 We treat "var x;" as a pseudo-L-value, which kind of makes sense if you
 treat it as "assignment to 'undefined' at the top of the scope". But if
 we're honest with ourselves, it doesn't make sense, and we only do this
 because it makes sense to treat this as syntactically similar to
 "var x = 0;".</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - The node</dd>
<dt><span class="strong">Returns:</span></dt><dd>True if n is an L-value.</dd></dl>
</li>
</ul>
<a name="newQualifiedNameNode(com.google.javascript.jscomp.CodingConvention, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newQualifiedNameNode</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;newQualifiedNameNode(<a href="../../../../com/google/javascript/jscomp/CodingConvention.html" title="interface in com.google.javascript.jscomp">CodingConvention</a>&nbsp;convention,
                        java.lang.String&nbsp;name)</pre>
<div class="block">Creates a node representing a qualified name.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - A qualified name (e.g. "foo" or "foo.bar.baz")</dd>
<dt><span class="strong">Returns:</span></dt><dd>A NAME or GETPROP node</dd></dl>
</li>
</ul>
<a name="newQualifiedNameNodeDeclaration(com.google.javascript.jscomp.CodingConvention, java.lang.String, com.google.javascript.rhino.Node, com.google.javascript.rhino.JSDocInfo)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newQualifiedNameNodeDeclaration</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;newQualifiedNameNodeDeclaration(<a href="../../../../com/google/javascript/jscomp/CodingConvention.html" title="interface in com.google.javascript.jscomp">CodingConvention</a>&nbsp;convention,
                                   java.lang.String&nbsp;name,
                                   <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;value,
                                   <a href="../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;info)</pre>
<div class="block">Creates a node representing a qualified name.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>name</code> - A qualified name (e.g. "foo" or "foo.bar.baz")</dd>
<dt><span class="strong">Returns:</span></dt><dd>A NAME or GETPROP node</dd></dl>
</li>
</ul>
<a name="isValidQualifiedName(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidQualifiedName</h4>
<pre>public static&nbsp;boolean&nbsp;isValidQualifiedName(java.lang.String&nbsp;name)</pre>
<div class="block">Determines whether the given name is a valid qualified name.</div>
</li>
</ul>
<a name="getFunctionParameters(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFunctionParameters</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;getFunctionParameters(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;fnNode)</pre>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>fnNode</code> - The function.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The Node containing the Function parameters.</dd></dl>
</li>
</ul>
<a name="getFunctionJSDocInfo(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFunctionJSDocInfo</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/JSDocInfo.html" title="class in com.google.javascript.rhino">JSDocInfo</a>&nbsp;getFunctionJSDocInfo(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</pre>
<div class="block">Get the JSDocInfo for a function.</div>
</li>
</ul>
<a name="getSourceName(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceName</h4>
<pre>public static&nbsp;java.lang.String&nbsp;getSourceName(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</pre>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - The node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The source name property on the node or its ancestors.</dd></dl>
</li>
</ul>
<a name="getSourceFile(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceFile</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/jstype/StaticSourceFile.html" title="interface in com.google.javascript.rhino.jstype">StaticSourceFile</a>&nbsp;getSourceFile(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</pre>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - The node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The source name property on the node or its ancestors.</dd></dl>
</li>
</ul>
<a name="getInputId(com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInputId</h4>
<pre>public static&nbsp;<a href="../../../../com/google/javascript/rhino/InputId.html" title="class in com.google.javascript.rhino">InputId</a>&nbsp;getInputId(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;n)</pre>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - The node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The InputId property on the node or its ancestors.</dd></dl>
</li>
</ul>
<a name="mapMainToClone(com.google.javascript.rhino.Node, com.google.javascript.rhino.Node)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapMainToClone</h4>
<pre>public static&nbsp;java.util.Map&lt;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>,<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&gt;&nbsp;mapMainToClone(<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;main,
                                      <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;clone)</pre>
<div class="block">Given an AST and its copy, map the root node of each scope of main to the
 corresponding root node of clone</div>
</li>
</ul>
<a name="verifyScopeChanges(java.util.Map, com.google.javascript.rhino.Node, boolean, com.google.javascript.jscomp.AbstractCompiler)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>verifyScopeChanges</h4>
<pre>public static&nbsp;void&nbsp;verifyScopeChanges(java.util.Map&lt;<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>,<a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&gt;&nbsp;map,
                      <a href="../../../../com/google/javascript/rhino/Node.html" title="class in com.google.javascript.rhino">Node</a>&nbsp;main,
                      boolean&nbsp;verifyUnchangedNodes,
                      <a href="../../../../com/google/javascript/jscomp/AbstractCompiler.html" title="class in com.google.javascript.jscomp">AbstractCompiler</a>&nbsp;compiler)</pre>
<div class="block">Checks that the scope roots marked as changed have indeed changed</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/javascript/jscomp/NodeTraversal.ScopedCallback.html" title="interface in com.google.javascript.jscomp"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../com/google/javascript/jscomp/ObjectPropertyStringPreprocess.html" title="class in com.google.javascript.jscomp"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/javascript/jscomp/NodeUtil.html" target="_top">Frames</a></li>
<li><a href="NodeUtil.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
